import mongoose from '../dbHelper'
import { defaultSchemaExtend, defaultSchemaOptions } from '../config/index'

const Schema = mongoose.Schema

const OrderSchema = new Schema(
	Object.assign(
		{
			// access_token: String,
			// auth_subject_type: String,
			// authority_id: String,
			// encrypt_operator: String,
			// expires_in: Number,
			// operator_name: String,
			// refresh_token: String,
			// scope: String,

			// shop_name: String,
			app_id: String,
			shop_id: Number,
			order_id: String,
			service_start_time: Number,
			service_end_time: Number,
			status: Number,
			phone: String,
			pay_amount: Number,
			pay_time: Number,
			order_create_time: Number,
			pay_type: Number,
			push_sku_info: new Schema(
				Object.assign({
					spec_type: Number,
					spec_value: String,
					price: Number,
					duration: Number,
					duration_unit: Number,
					title: String,
				})
			),
			isRefund: {
				type: Number,
				default: 0, // 0 未退款 1 已退款
			},
			// 管理后台代理id
			proxyId: {
				type: Schema.Types.ObjectId,
				ref: 'DlyAdminUser', // 代理商id
			},
			proxyLinkId: {
				type: Schema.Types.ObjectId,
				ref: 'DlyAdminLink', // 代理商下级id
			},
			channelCode: String, // 渠道编码

			proxygetmay: Boolean, // 代理是否提交提现
			adminSpendmay: Boolean, // 管理员是否提交提现
			admingetmay: Boolean, // 管理员是否提交提现
			proxy1getmay: Boolean, // 代理是否提交提现
			proxy2getmay: Boolean, // 代理是否提交提现

			proxygetmaystatys: Number, // null 没动作 1驳回 2已打款
			// 是否已经赠送积分
			isGive: {
				type: Number,
				default: 0, // 0 未赠送 1 已赠送
			},

			// 服务市场是否已经结算
			isSettle: {
				type: Number,
				default: 0, // 0 未结算 1 已结算
			},
			// 服务市场结算金额
			settleAmount: {
				type: Number,
				default: 0,
			},

			// 是否已给代理结算
			isSettleProxy: {
				type: Number,
				default: 0, // 0 未结算 1 已结算
			},
			adminSpSettle: {
				type: Number,
				default: 0, // 0 未结算 1 已结算
			},
			adminSettle: {
				type: Number,
				default: 0, // 0 未结算 1 已结算
			},
			proxy1Settle: {
				type: Number,
				default: 0, // 0 未结算 1 已结算
			},
			proxy2Settle: {
				type: Number,
				default: 0, // 0 未结算 1 已结算
			},

			// // 是否已经赠送优惠券
			// isGiveCoupon: {
			//     type: Number,
			//     default: 0, // 0 未赠送 1 已赠送
			// }
			// menber_status: {
			//     type: Number,
			//     default: 0, // 0 自行安装未授权用户 1 已授权试用 3 已经购买 检查到期时间
			// },
			// menber_outtime: String, // 使用过期时间未来时间戳
		},
		defaultSchemaExtend
	),
	defaultSchemaOptions
)

const Order = mongoose.model('Order', OrderSchema, 'Orders')

export default Order
